package com.bgs.eat.songMenu.controller;

import com.bgs.eat.config.CommonResult;
import com.bgs.eat.page.PageRequest;
import com.bgs.eat.songMenu.entity.SongMenuEntity;
import com.bgs.eat.songMenu.service.SongMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartRequest;

@RestController
@CrossOrigin
@RequestMapping("/songMenu")
public class SongMenuController {

    @Autowired
    SongMenuService songMenuService;

    /**
    * @Description 根据类别获取歌单
    * @Author lzy
    * @Date 2022/9/15 9:50
    * @Return com.bgs.music.config.CommonResult
    * @param typeId
    */
    @GetMapping("/getSongMenuByType")
    public CommonResult getSongMenuByType(Integer typeId) {
        return CommonResult.ok(songMenuService.getSongMenuByType(typeId));
    }

    /**
     * 获取推荐歌单列表信息 （门户展示）
     * lzy 2022-9-7 08点51分
     * @param pageRequest
     * @param typeId
     * @return
     */
    @GetMapping("/getSongMenuRecommend")
    public CommonResult getSongMenuRecommend(PageRequest pageRequest,Integer typeId){
        return songMenuService.getSongMenuRecommend(pageRequest,typeId);
    }

    /**
     * 修改歌单信息
     * lzy 2022-9-6 14点30分
     * @param songMenuEntity
     * @param multipartRequest
     * @return
     */
    @PutMapping("/editSongMenu")
    public CommonResult editSongMenu(SongMenuEntity songMenuEntity, MultipartRequest multipartRequest){
        return songMenuService.editSongMenu(songMenuEntity,multipartRequest);
    }

    /**
     * 歌单查重（门户展示）
     * lzy 2022-9-5 16点02分
     * @param songMenuName
     * @param creatorId
     * @return
     */
    @GetMapping("/checkSongMenuName")
    public CommonResult checkSongMenuName(String songMenuName,Integer creatorId){
        return songMenuService.checkSongMenuName(songMenuName,creatorId);
    }

    /**
     * 批量恢复歌单 （门户展示）
     * lzy 2022-9-5 15点33分
     * @param ids
     * @return
     */
    @PostMapping("/renewSongMenus")
    public CommonResult renewSongMenus(Integer[] ids) {
        return songMenuService.renewSongMenus(ids);
    }

    /**
     * 批量彻底删除歌单 （门户展示）
     * lzy 2022-9-5 15点33分
     * @param ids
     * @return
     */
    @PostMapping("/delSongMenus")
    public CommonResult delSongMenus(Integer[] ids) {
        return songMenuService.delSongMenus(ids);
    }

    /**
     * 获取被删除的表单（门户展示）
     * lzy 2022-9-5 14点58分
     * @param creatorId
     * @return
     */
    @GetMapping("/getSongMenuListByDel")
    public CommonResult getSongMenuListByDel(Integer creatorId){
        return songMenuService.getSongMenuListByDel(creatorId);
    }

    /**
     * 新增歌单 （创建歌单） （门户展示）
     * lzy 2022-9-5 09点24分
     * @param songMenuEntity
     * @return
     */
    @PostMapping("/saveSongMenu")
    public CommonResult saveSongMenu(SongMenuEntity songMenuEntity){
        return songMenuService.saveSongMenu(songMenuEntity);
    }

    /**
     * 获取歌单信息列表
     * lzy 2022-9-5 09点53分
     * @param creatorId
     * @return
     */
    @GetMapping("/getSongMenuList")
    public CommonResult getSongMenuList(Integer creatorId){
        return songMenuService.getSongMenuList(creatorId);
    }

    /**
     * 删除歌单（门户展示）
     * lzy 2022-9-5 11点38分
     * @param id
     * @return
     */
    @PutMapping ("/deleteSongMenu")
    public CommonResult deleteSongMenu(Integer id){
        return songMenuService.deleteSongMenu(id);
    }

    /**
     * 歌单信息查询（门户展示）
     * fys 2022-8-6 09点00分
     * @param id
     * @return
     */
    @GetMapping("/getSongMenuDetails")
    public CommonResult getSongMenuDetails(Integer id){
        return songMenuService.getSongMenuDetails(id);
    }

    /**
     * 根据用户id查询歌单名称
     * hbx 2022年9月8日11:34:18
     * @param creatorId
     * @return
     */
    @GetMapping("/getSongMenuNameByCreatorId")
    public CommonResult getSongMenuNameByCreatorId(Integer creatorId){
        return CommonResult.ok(songMenuService.getSongMenuNameByCreatorId(creatorId));
    }

    /**
     * 根据歌单id查询歌单名称
     * hbx 2022年9月14日09:17:21
     * @param id
     * @return
     */
    @GetMapping("/getSongMenuNameBySongMenuId")
    public CommonResult getSongMenuNameBySongMenuId(Integer id){
        return CommonResult.ok(songMenuService.getSongMenuNameBySongMenuId(id));
    }

}
